<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // GO对象  -> 全局对象
    // AO对象  -> Activation Object 活跃对象

    // 全局的代码  => 全局的执行栈(执行空间)
    // 函数中的代码  => 进入函数的执行栈(执行空间)

    // 一般情况下 -> 函数在执行过程中 =>会单独开辟一个执行空间(执行栈)  => 函数中声明的变量和方法 也会在此空间中存储 (AO对象  -> Activation Object 活跃对象)  => 等函数执行完毕 => 会返回执行的结果,从开辟的执行空间中跳出, 对应的AO对象 释放 (垃圾回收机制)

    // debugger;
    // function fn() {
    //     var a = 10;
    //     var b = 20;
    //     return a + b;
    // }
    // var res = fn();
    // console.log(res); // 30



    // 函数嵌套 

    debugger;
    function fn() { // AO(fn) = {a:10,func:func}
        var a = 10;

        function func() { // AO(func) ={b:20 }
            var b = 20

            return a + b;  // 30
        }

        return func(); // 30  返回func执行的结果

    }

    var res = fn();
    console.log(res);




</script>

</html>